package strategy;

import java.math.BigDecimal;

/**
 * 策略模式
 *  定义一系列算法，封装每个算法，并可以互换。可解决过多if-else的嵌套逻辑
 *  1.上下文信息类
 *  2.抽象策略类
 *  3.具体策略类
 * 提高可维护性，动态增加算法，应对频繁更换策略的场景
 */
public class StrategyTest {

    public static void main(String[] args) {

        Context<Integer> context = new Context<>(new ZKDiscount());
        BigDecimal discount = context.discount(20, new BigDecimal(100));
        System.out.println("折扣结果："+discount);


    }


}
